/**
 * Created by swing on 2017/5/21.
 */

var server = require('api');
var uuid = require('uuid');
var _alert = require('alert');
var _clear = require('clearForm');


var sendTask = avalon.define({
    $id : 'sendTask',
    send: {
        startTime : '',
        endTime : '',
        name: '',
        team: '',
        type: '',
        weight: '',
        des: '',
        teamLIst : [],
        taskType: [],
        taskStageDTOS: [],
        file: '',
        fileAddr: ''
    },

    jd: {
        per: '',
        content: '',
        name: ''
    },

    init : function () {

        setTimeout(function () {

            $(function () {

                setTimeout(function () {

                    _clear($('#sendTask'));

                    $('#addTaskjd').on('show.bs.modal', function () {
                        _clear($('#addTaskjd'));
                    })

                },100)
                //删除文件
                $('#delFile').on('click',function () {
                    $('input[id=lefile]').val('');
                    $('#fileName').text('');
                })

                //查询任务类型
                $.ajax({
                    url:server.queryTaskType,
                    type:'get',
                    dataType:'json',
                    data: {userId: avalon.vmodels.root.user.id,userToken:avalon.vmodels.root.user.token}
                })
                    .done(function (res) {
                        var data = res.values;
                        if (res.status == '9200'){
                            sendTask.send.taskType = avalon.mix(true, [], data);
                        }
                    })
                    .fail(function (res) {
                        _alert('网络错误，请稍后重试');
                        avalon.log(JSON.stringify(res))
                    })



                //查询队伍列表
                $.ajax({
                    url: server.teamList,
                    type: 'get',
                    dataType: 'json',
                    data: {
                        userId: avalon.vmodels.root.user.id,
                        userToken:avalon.vmodels.root.user.token,
                        groupType:'branch_group'
                    }
                })
                    .done(function(res) {
                        var data = res.values;
                        if(res.status == '9200'){
                            sendTask.send.teamLIst = avalon.mix(true, [], data)
                        }
                    })
                    .fail(function(res) {
                        _alert('网络错误，请刷新尝试！');
                        avalon.log(JSON.parse(res) + _.now())
                    })

            })
        },10)
    },

    // 添加任务阶段
    addTaskJd: function () {


        var name = sendTask.jd.name;
        var per = sendTask.jd.per;
        var con = sendTask.jd.content;

        var jd = {
            tsName : name,
            tsDES : con,
            tsCompletion : per
        }

        var _arr = sendTask.send.taskStageDTOS.$model;
        _arr.push(jd);

        sendTask.send.taskStageDTOS = avalon.mix(true, [], _arr);
        $('#addTaskjd').modal('hide');
        _clear($('#addTaskjd'));
    },

    // 移除任务阶段
    rmJd: function (index) {
        var _arr = sendTask.send.taskStageDTOS.$model;
        _arr.splice(index,1);
        sendTask.send.taskStageDTOS = avalon.mix(true, [], _arr);
    },


    // 下发任务
    sendTask: function () {
        var data = {
            userId: avalon.vmodels.root.user.id,
            userToken:avalon.vmodels.root.user.token,
            taskName:sendTask.send.name,
            taskTypeId:$('#selectType').val(),
            branchId:$('#selectGroup').val(),
            startTime:sendTask.send.startTime,
            endTime:sendTask.send.endTime,
            taskWeight:$('#selectWeight').val(),
            taskDES:sendTask.send.des,
            taskId: uuid().split('-').join(''),
            taskStageDTOS:sendTask.send.taskStageDTOS,//任务阶段
            taskAtt: sendTask.send.fileAddr
        }

        $.ajax({
            url: server.addTask,
            type: 'post',
            dataType: 'json',
            headers: {
                'Content-Type': 'application/json'
            },
            data: JSON.stringify(data)
        })
            .done(function (res) {
                if  (res.status == '9200'){
                    _alert('任务下发成功');
                    _clear($('#sendTask'));
                    resetJd();
                }else {
                    _alert(res.description);
                }

            })
            .fail(function (res) {
                _alert('网络错误，任务下发失败，请重试');
                avalon.log(JSON.stringify(res));
            })
    },

    // 选择文件
    fileSe: function () {
        var file = $('input[id=lefile]')[0].files[0];
        var formData = new FormData();
        formData.append('file', file);
        $('#fileName').html('<sapn>'+file.name+'</sapn>');
        console.log(file);

        $.ajax({
            url: server.fileUpload,
            type: 'POST',
            cache: false,
            data: formData,
            processData: false,
            contentType: false
        }).done(function(res) {
            sendTask.send.fileAddr = res.toString();
            console.log(res);
        }).fail(function(res) {
            $('#fileError').text(res.description);
        });
    }

})

function resetJd() {
    sendTask.send.taskStageDTOS = avalon.mix(true, [], []);
}
// sendTask.$watch("send.taskStageDTOS",function () {
//     var arr = sendTask.send.taskStageDTOS.$model;
//     console.log(arr)
// })

module.exports = sendTask;